package cn.fl.riskctrl.tddb.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.riskctrl.tddb.vo.TdmpApplyLVO;
import fl.riskctrl.facade.tddb.dto.TdmpApplyLDTO;

 /**
 * @Description: 同盾手机三要素核查申请日志表
 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class TdmpApplyLVOTransform {


	/**
	 * DTO 转  VO
	 * @param po TdmpApplyLDTO
	 * @return TdmpApplyLVO
	 */
	public static TdmpApplyLVO toVO(TdmpApplyLDTO dto) {
		TdmpApplyLVO  vo = null;
		if (dto != null) { 
			vo = new TdmpApplyLVO();
			vo.setId(dto.getId());
			vo.setTdApplyId(dto.getTdApplyId());//同盾申请表ID
			vo.setUsrNm(dto.getUsrNm());//名称
			vo.setCertNo(dto.getCertNo());//证件号码
			vo.setCertTypCd(dto.getCertTypCd());//证件类型(CST0005)
			vo.setMp(dto.getMp());//手机号码
			vo.setBkNo(dto.getBkNo());//银行卡号
			vo.setApiUrl(dto.getApiUrl());//API请求地址
			vo.setPartnerCd(dto.getPartnerCd());//合作方标识
			vo.setSecretKey(dto.getSecretKey());//API请求秘钥
			vo.setEventId(dto.getEventId());//接口调用时,用该字段区分不同
			vo.setTokenId(dto.getTokenId());//(选填)JS方式对接,用于关联设备指纹（如果对接设备指纹,则TOKEN_ID/BLACK_BOX参数必选）二选一由对接方式决定
			vo.setBlackBok(dto.getBlackBok());//(选填)sdk方式对接,用于关联设备指纹（如果对接设备指纹,则TOKEN_ID/BLACK_BOX参数必选）二选一由对接方式决定
			vo.setRespDetailTyp(dto.getRespDetailTyp());//(可选)支持API实时返回设备或解析信息
			vo.setReferCust(dto.getReferCust());//(可选)网页端请求来源
			vo.setEventOccurTm(dto.getEventOccurTm());//(可选)事件发生的真实时间 格式：2014-03-01 08:16:30
			vo.setDataFm(dto.getDataFm());//数据格式(RCT0010)
			vo.setCodeFm(dto.getCodeFm());//编码格式(RCT0020)
			vo.setResContent(dto.getResContent());//结果数据
			vo.setReportNo(dto.getReportNo());//报告编号-关联报告表ID
			vo.setReportStatus(dto.getReportStatus());//报告状态(RCT0015)
			vo.setReportDesc(dto.getReportDesc());//报告描述
			vo.setTransMsgId(dto.getTransMsgId());//用于分布式事务
			vo.setErrInfo(dto.getErrInfo());//错误内容
			vo.setRemark(dto.getRemark());//备注
			vo.setIsValid(dto.getIsValid());//是否有效(SYS0021)
			vo.setIsDel(dto.getIsDel());//是否删除(SYS0021)
			vo.setApplyTm(dto.getApplyTm());//申请时间

			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
			
			vo.setCertTypCdNm(dto.getCertTypCdNm());
			vo.setDataFmNm(dto.getDataFmNm());
			vo.setCodeFmNm(dto.getCodeFmNm());
			vo.setReportStatusNm(dto.getReportStatusNm());
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param dto TdmpApplyLVO
	 * @return TdmpApplyLDTO
	 */
	public static TdmpApplyLDTO toDTO(TdmpApplyLVO vo) {
		TdmpApplyLDTO dto = null;
		if (vo != null) {
			dto = new TdmpApplyLDTO();
			dto.setId(vo.getId());
			dto.setTdApplyId(vo.getTdApplyId());//同盾申请表ID
			dto.setUsrNm(vo.getUsrNm());//名称
			dto.setCertNo(vo.getCertNo());//证件号码
			dto.setCertTypCd(vo.getCertTypCd());//证件类型(CST0005)
			dto.setMp(vo.getMp());//手机号码
			dto.setBkNo(vo.getBkNo());//银行卡号
			dto.setApiUrl(vo.getApiUrl());//API请求地址
			dto.setPartnerCd(vo.getPartnerCd());//合作方标识
			dto.setSecretKey(vo.getSecretKey());//API请求秘钥
			dto.setEventId(vo.getEventId());//接口调用时,用该字段区分不同
			dto.setTokenId(vo.getTokenId());//(选填)JS方式对接,用于关联设备指纹（如果对接设备指纹,则TOKEN_ID/BLACK_BOX参数必选）二选一由对接方式决定
			dto.setBlackBok(vo.getBlackBok());//(选填)sdk方式对接,用于关联设备指纹（如果对接设备指纹,则TOKEN_ID/BLACK_BOX参数必选）二选一由对接方式决定
			dto.setRespDetailTyp(vo.getRespDetailTyp());//(可选)支持API实时返回设备或解析信息
			dto.setReferCust(vo.getReferCust());//(可选)网页端请求来源
			dto.setEventOccurTm(vo.getEventOccurTm());//(可选)事件发生的真实时间 格式：2014-03-01 08:16:30
			dto.setDataFm(vo.getDataFm());//数据格式(RCT0010)
			dto.setCodeFm(vo.getCodeFm());//编码格式(RCT0020)
			dto.setResContent(vo.getResContent());//结果数据
			dto.setReportNo(vo.getReportNo());//报告编号-关联报告表ID
			dto.setReportStatus(vo.getReportStatus());//报告状态(RCT0015)
			dto.setReportDesc(vo.getReportDesc());//报告描述
			dto.setTransMsgId(vo.getTransMsgId());//用于分布式事务
			dto.setErrInfo(vo.getErrInfo());//错误内容
			dto.setRemark(vo.getRemark());//备注
			dto.setIsValid(vo.getIsValid());//是否有效(SYS0021)
			dto.setIsDel(vo.getIsDel());//是否删除(SYS0021)
			dto.setApplyTm(vo.getApplyTm());//申请时间

			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param List<TdmpApplyLDTO>
	 * @return List<TdmpApplyLVO>
	 */
	public static List<TdmpApplyLVO> toVOList(List<TdmpApplyLDTO> list) {
		List<TdmpApplyLVO>  voList = new ArrayList<TdmpApplyLVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (TdmpApplyLDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 * VO集合 转 DTO集合
	 * @param list List<TdmpApplyLVO>
	 * @return List<TdmpApplyLDTO>
	 */
	public static List<TdmpApplyLDTO> toDTOList(List<TdmpApplyLVO> list) {
		List<TdmpApplyLDTO>  dtoList = new ArrayList<TdmpApplyLDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (TdmpApplyLVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
